// Copyright (c) Microsoft and Contributors. All rights reserved. Licensed under the University of Illinois/NCSA Open Source License. See LICENSE.txt in the project root for license information.
// Ported from https://github.com/microsoft/ClangSharp/blob/master/sources/libClangSharp

namespace ClangSharp.Interop
{
    public enum CX_StmtClass
    {
        CX_StmtClass_Invalid,
        CX_StmtClass_GCCAsmStmt,
        CX_StmtClass_MSAsmStmt,
        CX_StmtClass_FirstAsmStmt = CX_StmtClass_GCCAsmStmt,
        CX_StmtClass_LastAsmStmt = CX_StmtClass_MSAsmStmt,
        CX_StmtClass_BreakStmt,
        CX_StmtClass_CXXCatchStmt,
        CX_StmtClass_CXXForRangeStmt,
        CX_StmtClass_CXXTryStmt,
        CX_StmtClass_CapturedStmt,
        CX_StmtClass_CompoundStmt,
        CX_StmtClass_ContinueStmt,
        CX_StmtClass_CoreturnStmt,
        CX_StmtClass_CoroutineBodyStmt,
        CX_StmtClass_DeclStmt,
        CX_StmtClass_DoStmt,
        CX_StmtClass_ForStmt,
        CX_StmtClass_GotoStmt,
        CX_StmtClass_IfStmt,
        CX_StmtClass_IndirectGotoStmt,
        CX_StmtClass_MSDependentExistsStmt,
        CX_StmtClass_NullStmt,
        CX_StmtClass_OMPAtomicDirective,
        CX_StmtClass_OMPBarrierDirective,
        CX_StmtClass_OMPCancelDirective,
        CX_StmtClass_OMPCancellationPointDirective,
        CX_StmtClass_OMPCriticalDirective,
        CX_StmtClass_OMPFlushDirective,
        CX_StmtClass_OMPDistributeDirective,
        CX_StmtClass_OMPDistributeParallelForDirective,
        CX_StmtClass_OMPDistributeParallelForSimdDirective,
        CX_StmtClass_OMPDistributeSimdDirective,
        CX_StmtClass_OMPForDirective,
        CX_StmtClass_OMPForSimdDirective,
        CX_StmtClass_OMPMasterTaskLoopDirective,
        CX_StmtClass_OMPMasterTaskLoopSimdDirective,
        CX_StmtClass_OMPParallelForDirective,
        CX_StmtClass_OMPParallelForSimdDirective,
        CX_StmtClass_OMPParallelMasterTaskLoopDirective,
        CX_StmtClass_OMPParallelMasterTaskLoopSimdDirective,
        CX_StmtClass_OMPSimdDirective,
        CX_StmtClass_OMPTargetParallelForSimdDirective,
        CX_StmtClass_OMPTargetSimdDirective,
        CX_StmtClass_OMPTargetTeamsDistributeDirective,
        CX_StmtClass_OMPTargetTeamsDistributeParallelForDirective,
        CX_StmtClass_OMPTargetTeamsDistributeParallelForSimdDirective,
        CX_StmtClass_OMPTargetTeamsDistributeSimdDirective,
        CX_StmtClass_OMPTaskLoopDirective,
        CX_StmtClass_OMPTaskLoopSimdDirective,
        CX_StmtClass_OMPTeamsDistributeDirective,
        CX_StmtClass_OMPTeamsDistributeParallelForDirective,
        CX_StmtClass_OMPTeamsDistributeParallelForSimdDirective,
        CX_StmtClass_OMPTeamsDistributeSimdDirective,
        CX_StmtClass_FirstOMPLoopDirective = CX_StmtClass_OMPDistributeDirective,
        CX_StmtClass_LastOMPLoopDirective = CX_StmtClass_OMPTeamsDistributeSimdDirective,
        CX_StmtClass_OMPMasterDirective,
        CX_StmtClass_OMPOrderedDirective,
        CX_StmtClass_OMPParallelDirective,
        CX_StmtClass_OMPParallelMasterDirective,
        CX_StmtClass_OMPParallelSectionsDirective,
        CX_StmtClass_OMPSectionDirective,
        CX_StmtClass_OMPSectionsDirective,
        CX_StmtClass_OMPSingleDirective,
        CX_StmtClass_OMPTargetDataDirective,
        CX_StmtClass_OMPTargetDirective,
        CX_StmtClass_OMPTargetEnterDataDirective,
        CX_StmtClass_OMPTargetExitDataDirective,
        CX_StmtClass_OMPTargetParallelDirective,
        CX_StmtClass_OMPTargetParallelForDirective,
        CX_StmtClass_OMPTargetTeamsDirective,
        CX_StmtClass_OMPTargetUpdateDirective,
        CX_StmtClass_OMPTaskDirective,
        CX_StmtClass_OMPTaskgroupDirective,
        CX_StmtClass_OMPTaskwaitDirective,
        CX_StmtClass_OMPTaskyieldDirective,
        CX_StmtClass_OMPTeamsDirective,
        CX_StmtClass_FirstOMPExecutableDirective = CX_StmtClass_OMPAtomicDirective,
        CX_StmtClass_LastOMPExecutableDirective = CX_StmtClass_OMPTeamsDirective,
        CX_StmtClass_ObjCAtCatchStmt,
        CX_StmtClass_ObjCAtFinallyStmt,
        CX_StmtClass_ObjCAtSynchronizedStmt,
        CX_StmtClass_ObjCAtThrowStmt,
        CX_StmtClass_ObjCAtTryStmt,
        CX_StmtClass_ObjCAutoreleasePoolStmt,
        CX_StmtClass_ObjCForCollectionStmt,
        CX_StmtClass_ReturnStmt,
        CX_StmtClass_SEHExceptStmt,
        CX_StmtClass_SEHFinallyStmt,
        CX_StmtClass_SEHLeaveStmt,
        CX_StmtClass_SEHTryStmt,
        CX_StmtClass_CaseStmt,
        CX_StmtClass_DefaultStmt,
        CX_StmtClass_FirstSwitchCase = CX_StmtClass_CaseStmt,
        CX_StmtClass_LastSwitchCase = CX_StmtClass_DefaultStmt,
        CX_StmtClass_SwitchStmt,
        CX_StmtClass_AttributedStmt,
        CX_StmtClass_BinaryConditionalOperator,
        CX_StmtClass_ConditionalOperator,
        CX_StmtClass_FirstAbstractConditionalOperator = CX_StmtClass_BinaryConditionalOperator,
        CX_StmtClass_LastAbstractConditionalOperator = CX_StmtClass_ConditionalOperator,
        CX_StmtClass_AddrLabelExpr,
        CX_StmtClass_ArrayInitIndexExpr,
        CX_StmtClass_ArrayInitLoopExpr,
        CX_StmtClass_ArraySubscriptExpr,
        CX_StmtClass_ArrayTypeTraitExpr,
        CX_StmtClass_AsTypeExpr,
        CX_StmtClass_AtomicExpr,
        CX_StmtClass_BinaryOperator,
        CX_StmtClass_CompoundAssignOperator,
        CX_StmtClass_FirstBinaryOperator = CX_StmtClass_BinaryOperator,
        CX_StmtClass_LastBinaryOperator = CX_StmtClass_CompoundAssignOperator,
        CX_StmtClass_BlockExpr,
        CX_StmtClass_CXXBindTemporaryExpr,
        CX_StmtClass_CXXBoolLiteralExpr,
        CX_StmtClass_CXXConstructExpr,
        CX_StmtClass_CXXTemporaryObjectExpr,
        CX_StmtClass_FirstCXXConstructExpr = CX_StmtClass_CXXConstructExpr,
        CX_StmtClass_LastCXXConstructExpr = CX_StmtClass_CXXTemporaryObjectExpr,
        CX_StmtClass_CXXDefaultArgExpr,
        CX_StmtClass_CXXDefaultInitExpr,
        CX_StmtClass_CXXDeleteExpr,
        CX_StmtClass_CXXDependentScopeMemberExpr,
        CX_StmtClass_CXXFoldExpr,
        CX_StmtClass_CXXInheritedCtorInitExpr,
        CX_StmtClass_CXXNewExpr,
        CX_StmtClass_CXXNoexceptExpr,
        CX_StmtClass_CXXNullPtrLiteralExpr,
        CX_StmtClass_CXXPseudoDestructorExpr,
        CX_StmtClass_CXXRewrittenBinaryOperator,
        CX_StmtClass_CXXScalarValueInitExpr,
        CX_StmtClass_CXXStdInitializerListExpr,
        CX_StmtClass_CXXThisExpr,
        CX_StmtClass_CXXThrowExpr,
        CX_StmtClass_CXXTypeidExpr,
        CX_StmtClass_CXXUnresolvedConstructExpr,
        CX_StmtClass_CXXUuidofExpr,
        CX_StmtClass_CallExpr,
        CX_StmtClass_CUDAKernelCallExpr,
        CX_StmtClass_CXXMemberCallExpr,
        CX_StmtClass_CXXOperatorCallExpr,
        CX_StmtClass_UserDefinedLiteral,
        CX_StmtClass_FirstCallExpr = CX_StmtClass_CallExpr,
        CX_StmtClass_LastCallExpr = CX_StmtClass_UserDefinedLiteral,
        CX_StmtClass_BuiltinBitCastExpr,
        CX_StmtClass_CStyleCastExpr,
        CX_StmtClass_CXXFunctionalCastExpr,
        CX_StmtClass_CXXConstCastExpr,
        CX_StmtClass_CXXDynamicCastExpr,
        CX_StmtClass_CXXReinterpretCastExpr,
        CX_StmtClass_CXXStaticCastExpr,
        CX_StmtClass_FirstCXXNamedCastExpr = CX_StmtClass_CXXConstCastExpr,
        CX_StmtClass_LastCXXNamedCastExpr = CX_StmtClass_CXXStaticCastExpr,
        CX_StmtClass_ObjCBridgedCastExpr,
        CX_StmtClass_FirstExplicitCastExpr = CX_StmtClass_BuiltinBitCastExpr,
        CX_StmtClass_LastExplicitCastExpr = CX_StmtClass_ObjCBridgedCastExpr,
        CX_StmtClass_ImplicitCastExpr,
        CX_StmtClass_FirstCastExpr = CX_StmtClass_BuiltinBitCastExpr,
        CX_StmtClass_LastCastExpr = CX_StmtClass_ImplicitCastExpr,
        CX_StmtClass_CharacterLiteral,
        CX_StmtClass_ChooseExpr,
        CX_StmtClass_CompoundLiteralExpr,
        CX_StmtClass_ConceptSpecializationExpr,
        CX_StmtClass_ConvertVectorExpr,
        CX_StmtClass_CoawaitExpr,
        CX_StmtClass_CoyieldExpr,
        CX_StmtClass_FirstCoroutineSuspendExpr = CX_StmtClass_CoawaitExpr,
        CX_StmtClass_LastCoroutineSuspendExpr = CX_StmtClass_CoyieldExpr,
        CX_StmtClass_DeclRefExpr,
        CX_StmtClass_DependentCoawaitExpr,
        CX_StmtClass_DependentScopeDeclRefExpr,
        CX_StmtClass_DesignatedInitExpr,
        CX_StmtClass_DesignatedInitUpdateExpr,
        CX_StmtClass_ExpressionTraitExpr,
        CX_StmtClass_ExtVectorElementExpr,
        CX_StmtClass_FixedPointLiteral,
        CX_StmtClass_FloatingLiteral,
        CX_StmtClass_ConstantExpr,
        CX_StmtClass_ExprWithCleanups,
        CX_StmtClass_FirstFullExpr = CX_StmtClass_ConstantExpr,
        CX_StmtClass_LastFullExpr = CX_StmtClass_ExprWithCleanups,
        CX_StmtClass_FunctionParmPackExpr,
        CX_StmtClass_GNUNullExpr,
        CX_StmtClass_GenericSelectionExpr,
        CX_StmtClass_ImaginaryLiteral,
        CX_StmtClass_ImplicitValueInitExpr,
        CX_StmtClass_InitListExpr,
        CX_StmtClass_IntegerLiteral,
        CX_StmtClass_LambdaExpr,
        CX_StmtClass_MSPropertyRefExpr,
        CX_StmtClass_MSPropertySubscriptExpr,
        CX_StmtClass_MaterializeTemporaryExpr,
        CX_StmtClass_MemberExpr,
        CX_StmtClass_NoInitExpr,
        CX_StmtClass_OMPArraySectionExpr,
        CX_StmtClass_ObjCArrayLiteral,
        CX_StmtClass_ObjCAvailabilityCheckExpr,
        CX_StmtClass_ObjCBoolLiteralExpr,
        CX_StmtClass_ObjCBoxedExpr,
        CX_StmtClass_ObjCDictionaryLiteral,
        CX_StmtClass_ObjCEncodeExpr,
        CX_StmtClass_ObjCIndirectCopyRestoreExpr,
        CX_StmtClass_ObjCIsaExpr,
        CX_StmtClass_ObjCIvarRefExpr,
        CX_StmtClass_ObjCMessageExpr,
        CX_StmtClass_ObjCPropertyRefExpr,
        CX_StmtClass_ObjCProtocolExpr,
        CX_StmtClass_ObjCSelectorExpr,
        CX_StmtClass_ObjCStringLiteral,
        CX_StmtClass_ObjCSubscriptRefExpr,
        CX_StmtClass_OffsetOfExpr,
        CX_StmtClass_OpaqueValueExpr,
        CX_StmtClass_UnresolvedLookupExpr,
        CX_StmtClass_UnresolvedMemberExpr,
        CX_StmtClass_FirstOverloadExpr = CX_StmtClass_UnresolvedLookupExpr,
        CX_StmtClass_LastOverloadExpr = CX_StmtClass_UnresolvedMemberExpr,
        CX_StmtClass_PackExpansionExpr,
        CX_StmtClass_ParenExpr,
        CX_StmtClass_ParenListExpr,
        CX_StmtClass_PredefinedExpr,
        CX_StmtClass_PseudoObjectExpr,
        CX_StmtClass_RequiresExpr,
        CX_StmtClass_ShuffleVectorExpr,
        CX_StmtClass_SizeOfPackExpr,
        CX_StmtClass_SourceLocExpr,
        CX_StmtClass_StmtExpr,
        CX_StmtClass_StringLiteral,
        CX_StmtClass_SubstNonTypeTemplateParmExpr,
        CX_StmtClass_SubstNonTypeTemplateParmPackExpr,
        CX_StmtClass_TypeTraitExpr,
        CX_StmtClass_TypoExpr,
        CX_StmtClass_UnaryExprOrTypeTraitExpr,
        CX_StmtClass_UnaryOperator,
        CX_StmtClass_VAArgExpr,
        CX_StmtClass_FirstExpr = CX_StmtClass_BinaryConditionalOperator,
        CX_StmtClass_LastExpr = CX_StmtClass_VAArgExpr,
        CX_StmtClass_LabelStmt,
        CX_StmtClass_FirstValueStmt = CX_StmtClass_AttributedStmt,
        CX_StmtClass_LastValueStmt = CX_StmtClass_LabelStmt,
        CX_StmtClass_WhileStmt,
        CX_StmtClass_FirstStmt = CX_StmtClass_GCCAsmStmt,
        CX_StmtClass_LastStmt = CX_StmtClass_WhileStmt,
    }
}
